package com.itheima.mapper;

import com.github.pagehelper.Page;
import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

import java.util.List;
import java.util.Map;

public interface UserMapper {

    User findDetailByUsername(String username);

    List<Map<String, Object>> findAllHealthManager();

    Integer findByMemberId(Integer memberId);

    /* ========================================================================================================== */

    /**
     * 1.模糊查询
     *
     * @param keyword
     * @return
     */
    Page<Map<String, Object>> getListByConditon(@Param("keyword") String keyword);

    /**
     * 2.添加系统用户信息
     *
     * @param user
     */
    void createUser(User user);

    /**
     * 3.维护中间表关联关系
     *
     * @param params
     */
    void addUserAndRole(Map<String, Object> params);

    /**
     * 4.根据用户id查询用户信息
     *
     * @param id
     * @return
     */
    User getUserById(Integer id);

    /**
     * 5.查询用户,角色关联的中间表
     *
     * @param id
     * @return
     */
    List<Integer> getRoleIdsByUserId(Integer id);

    /**
     * 6.根据id更新用户记录
     *
     * @param user
     */
    void update(User user);

    /**
     * 7.清除关联关系
     *
     * @param userId
     */
    void deleteUserAndRoleByUserId(Integer userId);

    /**
     * 8.删除用户数据
     *
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 9.统计用户登录次数
     */
    void loginStatistics(String username);

}
